#include <QCoreApplication>
#include <QtTest>
#include "duckdbsqldrivertest.h"

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    
    // 设置消息格式
    qSetMessagePattern("%{time yyyy-MM-dd hh:mm:ss.zzz} %{type} %{message}");
    
    qDebug() << "开始测试 QDUCKDB QSql 驱动插件...";
    
    // 打印环境变量信息
    qDebug() << "=== 环境变量 ===";
    qDebug() << "QT_PLUGIN_PATH:" << qgetenv("QT_PLUGIN_PATH");
    qDebug() << "DUCKDB_HOME:" << qgetenv("DUCKDB_HOME");
    
    // 打印可用的SQL驱动
    qDebug() << "=== 可用的SQL驱动 ===";
    qDebug() << "已注册的驱动:" << QSqlDatabase::drivers();
    qDebug() << "QDUCKDB 可用:" << QSqlDatabase::isDriverAvailable("QDUCKDB");
    QSqlDatabase xdb = QSqlDatabase::addDatabase("QDUCKDB");
    qDebug() << "xdb:" <<xdb.isValid();
    // 创建并运行测试
    DuckdbSqlDriverTest testObject;
    
    // 使用QTEST_MAIN的方式运行测试
    int result = QTest::qExec(&testObject, argc, argv);
    
    qDebug() << "测试完成，结果代码:" << result;
    
    return result;
}

// 由于我们在头文件中使用了Q_OBJECT宏，需要添加这个来处理moc
#include "moc_duckdbsqldrivertest.cpp"